Many types of digital computer systems are used to implement virtual machines and support for applications that execute within virtual machines. Generally, the term “virtual machine” refers to a computer system image or process that supports multiple computer system images/processes. Each image can contain an operating system and its associated applications, or alternatively, each image may have the same operating system or different respective operating systems. Some prior art computer systems are specifically built with hardware circuits that support virtual machine capability. These prior art solutions are limited in their performance and usefulness due to fact that their software support for virtual memory requires very slow software-based emulation while the hardware support does not cache virtual-address-to-physical-address translations efficiently in multi tasking, multi context environments. Thus what is required is a solution that can efficiently implement hardware support for virtual machine memory protection and address translation and for applications executing within virtual machines.